home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #6 / Amiga Plus CD - 2004 - No. 06.iso / AmiSoft / Util / libs / ExtraLib.lha / Extra / include / rhosigma / settings.bc < prev    next >
Text File  |  2004-05-30  |  4KB  |  107 lines

  1. ' ___________________________________________________________________________
  2. ' |*************************************************************************|
  3. ' |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
  4. ' |*| Set TAB to 4 for best readable file layout.  |*|  Maxon Basic 3.00  |*|
  5. ' |*|______________________________________________|*|____________________|*|
  6. ' |*************************************************************************|
  7. ' |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
  8. ' |*|               |*|  $Id: settings.bc (18.04.03)                      |*|
  9. ' |*| ###### ###### |*|  RhoSigma Source based on NDK 3.1 Includes 40.15  |*|
  10. ' |*| ##  ## ##   # |*| _________________________________________________ |*|
  11. ' |*| ##  ##  ##    |*|                                                   |*|
  12. ' |*| ######   ##   |*|  Useful defines and extensions for NDK includes   |*|
  13. ' |*| ##      ##    |*|                                                   |*|
  14. ' |*| ##     ##   # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
  15. ' |*| ##     ###### |*|  Copyright © 1998-2003 RhoSigma, Roland Heyder    |*|
  16. ' |*|               |*|  All Rights Reserved.                             |*|
  17. ' |*|_______________|*|___________________________________________________|*|
  18. ' |*************************************************************************|
  19. ' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  20.  
  21. '$UNDERLINES
  22.  
  23.             '** enhanced booleans **
  24.  
  25. CONST UPPER%    = 1            'Signum- und Wahrheitswerte zur
  26. CONST EQUAL%    = 0            'Verwendung in Variablen des
  27. CONST LOWER%    = -1        'Typs BOOL
  28.  
  29.             '** for DisplayAlert() **
  30.  
  31. CONST DATPOS_C%    = -1        'Text zentrieren
  32. CONST DATPOS_L%    = -2        'Text linksbündig
  33. CONST DATPOS_R%    = -3        'Text rechtsbündig
  34.  
  35. '*** rhosigma / DATEXT() ***
  36. '============================================================================
  37. ' Diese Routine erstellt einen Teilstring des Parameterstrings der Intuition-
  38. ' Routine »DisplayAlert()«. Wahlweise kann der Text automatisch zentriert,
  39. ' oder links- bzw. rechsbündig ausgerichtet werden.
  40. '----------------------------------------------------------------------------
  41. ' Definiert:    settings.bc  (Copyright © 1998-2003 RhoSigma, Roland Heyder)
  42. '
  43. ' Schablone:    xPos%/A/N, yPos%/A/N, Text$/A, EndFlag%/N/S
  44. '
  45. ' Parameter:    xPos%     --> x-Position des Textes,
  46. '                                oder einer der oben definierten DATPOS-Werte
  47. '
  48. '                yPos%     --> y-Position des Textes,
  49. '                                Ausrichtung nach BaseLine des Fonts (topaz/8)
  50. '
  51. '                Text$     --> der Text selbst als Variable oder Konstante
  52. '
  53. '                EndFlag% --> - TRUE& , dann endet hier der Parameterstring
  54. '                             - FALSE&, dann MUSS noch ein weiterer Teilstring
  55. '                                       (SUB-Aufruf) folgen.
  56. '
  57. ' Bemerkung:    Nach Aufruf der Routine für alle einzelnen Teilstrings finden
  58. '                Sie den fertigen Parameterstring in der Variable »daAlert$«,
  59. '                welche Sie an »DisplayAlert()« mittels »SADD(daAlert$)« über-
  60. '                geben müssen.
  61. '
  62. '                Ein Beispiel für die Benutzung dieser Routine finden Sie in der
  63. '                Datei »demo/AlertDemo.BAS«.
  64. '
  65. '   ACHTUNG:    Sie dürfen in Ihrem Programm keine eigene Stringvariable mit
  66. '   ¯¯¯¯¯¯¯¯    dem Namen »daAlert$« verwenden, da diese unweigerlich durch
  67. '                dieses Unterprogramm überschrieben werden würde.
  68. '
  69. '                Außerdem müssen Sie den Parameterstring immer unmittelbar vor
  70. '                dem »DisplayAlert()«-Aufruf definieren, da die Variable »daAlert$«
  71. '                jedesmal wieder überschrieben wird, und daher immer nur den zu-
  72. '                letzt erstellten Parameterstring enthält.
  73. '============================================================================
  74.  
  75. SUB DATEXT(xPos%,yPos%,Text$,EndFlag%) STATIC
  76. SHARED daAlert$
  77. STATIC lFlag%
  78.  
  79.     IF lFlag%<>0 THEN    ' wird ein neuer ParamString angefangen,
  80.         lFlag%=0        ' dann »daAlert$« erst zurücksetzen
  81.         daAlert$=""
  82.     ELSE
  83.         lFlag%=EndFlag%
  84.     END IF
  85.  
  86.     IF xPos%=DATPOS_C% THEN                ' gewünschte Ausrichtung,
  87.         xPos%=(640-(LEN(Text$)*8))/2    ' falls angegeben
  88.     ELSEIF xPos%=DATPOS_L% THEN
  89.         xPos%=12
  90.     ELSEIF xPos%=DATPOS_R% THEN
  91.         xPos%=(640-(LEN(Text$)*8))-12
  92.     END IF
  93.     IF LEN(Text$)/2=INT(LEN(Text$)/2) THEN Text$=Text$+CHR$(32) 'für OS 1.3
  94.  
  95.     daAlert$=daAlert$+MKI$(xPos%)+CHR$(yPos%)+Text$+CHR$(0)    ' alles erstellen
  96.  
  97.     IF EndFlag%=0 THEN                ' wenn kein END-Flag, dann Continue-Byte
  98.         daAlert$=daAlert$+CHR$(1)    ' setzen, ansonsten 0-Byte und Adresse
  99.     ELSE                            ' auf gerade setzen
  100.         daAlert$=daAlert$+CHR$(0)
  101.         WHILE SADD(daAlert$) AND 1
  102.             daAlert$=daAlert$+CHR$(0)
  103.         WEND
  104.     END IF
  105.  
  106. END SUB
  107.